<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    // 函数嵌套
    // 嵌套调用(在函数内调用另一个函数)
    // 嵌套封装(在函数内封装另一个函数)

    // 注意:
    // (1) 外层函数在执行过程中,调用内层函数
    // (2) 外层函数需要等待内层函数执行完毕后,才会继续向后执行
    // (3) 外层函数和内层函数都可以设置自己的返回值, 内层函数的返回值不会直接传递给外层


    debugger;
    function fn(){
        var a = 10;

        function func(){
            var b = 20;
            return a + b;  // 30
        }

        var res = func(); // 30
        console.log(res);
        return res;  // 将内层函数的返回值, 作为外层函数的返回值

        // return func();  // 30  => 先调用内层函数,将内容函数的返回值,作为外层函数的返回值
    }

    var result = fn();
    console.log(result);


</script>
</html>